// 格式化时间
export const dateFormat = function (fmt = 'YYYY-MM-DD', date = new Date()) {
  const time = new Date(date)
  const weekArr = ['日', '一', '二', '三', '四', '五', '六']
  var o = {
    'M+': time.getMonth() + 1, //月份
    'D+': time.getDate(), //日
    'h+': time.getHours(), //小时
    'm+': time.getMinutes(), //分
    's+': time.getSeconds(), //秒
    'q+': Math.floor((time.getMonth() + 3) / 3), //季度
    S: time.getMilliseconds(), //毫秒
    W: time.getDay() //星期
  }
  if (/(Y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (time.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o)
    if (new RegExp('(' + k + ')').test(fmt))
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1 == 'W' ? weekArr[o[k]] : RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
      )
  return fmt
}

export const versionToNum = function (value) {
  const version = value.toString()
  let versionArray = version.split('.')
  let num_place = ['', '0', '00', '000', '0000']
  let r = num_place.reverse()
  for (let i = 0; i < versionArray.length; i++) {
    let len = versionArray[i].length
    versionArray[i] = r[len] + versionArray[i]
  }
  return versionArray.join('')
}

// 两数之间的随机数
export const randomNum = function (min, max) {
  return min + Math.floor(Math.random() * (max - min + 1))
}

//判断两个数组是否相等
export const arrayEqual = function (arr1, arr2) {
  arr1 = arr1.sort()
  arr2 = arr2.sort()
  if (arr1 === arr2) return true
  if (arr1.length != arr2.length) return false
  for (let i = 0; i < arr1.length; ++i) {
    if (arr1[i] !== arr2[i]) return false
  }
  return true
}

//缩略图转换
export const thumbnailImgMap = (imgUrl) => {
  if (!imgUrl) return
  if (imgUrl.lastIndexOf('.') > -1) {
    const temp = imgUrl.split('.')
    return `${filePrefix}${temp[0]}_300x300.${temp[1]}`
  }
  return imgUrl
}

// 姓名脱敏
export const desensitize = (str) => {
  if (!str) return str // 如果字符串为空，直接返回

  const length = str.length

  if (length <= 1) {
    return str // 如果字符串长度小于等于1，直接返回
  } else if (length === 2) {
    return str[0] + '*' // 如果字符串长度为2，隐藏第二个字符
  } else {
    // 如果字符串长度大于2，隐藏中间部分
    const firstChar = str[0]
    const lastChar = str[length - 1]
    const middle = '*'.repeat(length - 2)
    return firstChar + middle + lastChar
  }
}

// 营业执照脱敏
export const desensitizeMiddle = (str) => {
  if (!str) return str // 如果字符串为空，直接返回

  const length = str.length

  // 如果字符串长度小于等于8，直接返回原字符串（或者根据需要处理）
  if (length <= 8) {
    return str // 或者可以全部隐藏，根据需求调整
  }

  // 截取前4个字符和后4个字符
  const firstPart = str.slice(0, 4)
  const lastPart = str.slice(-4)

  // 中间部分用 * 替换
  const middle = '*'.repeat(length - 8)

  return firstPart + middle + lastPart
}
